Описание
Закрывает открытый объект доступа к данным (DAO).
объект.Close
Параметры
объект
Прототип объект представляет объектную
переменную, задающую открытый объект Connection, Database,
Recordset или Workspace.
Замечания
Закрытие объекта удаляет открытый объект из семейства, в которое
он добавлен. Любая попытка закрыть стандартную рабочую область
игнорируется.
При вызове метода Close для уже закрытого объекта
Connection, Database, Recordset или Workspace
возникает ошибка выполнения.
При выходе из процедуры, в которой описаны
объекты Connection, Database или Recordset, эти объекты
закрываются, все незавершенные транзакции свертываются, а результаты всех
незаконченных операций редактирования теряются.
Попытка закрыть объект
Connection или Database при наличии открытых объектов
Recordset приводит к закрытию объектов Recordset и отмене всех
незавершенных операций обновления или изменения. Аналогично, попытка закрыть
объект Workspace при наличии любых открытых объектов Connection
или Database приводит к закрытию объектов Connection и
Database, в результате чего будут закрыты принадлежащие им объекты
Recordset.
Применение метода Close к одному из объектов
Recordset (оригиналу или копии) не влияет на второй объект.
Для
удаления объектов из обновляемых семейств, отличных от семейств
Connections, Databases, Recordsets и Workspaces,
следует применять к этим семействам метод Delete. Добавление новых
компонентов в семейства Containers, Documents и Errors не
допускается.
Альтернативой методу Close может служить задание для
объектной переменной значения Nothing (Set dbsTemp = Nothing).
Пример
Следующая программа использует метод Close для закрытия
объектов Recordset и Database. Демонстрируется также потеря
несохраненных изменений при закрытии объекта Recordset.
Sub CloseX() Dim dbsNorthwind As Database Dim rstEmployees As Recordset Set dbsNorthwind = OpenDatabase("Борей.mdb") Set rstEmployees = dbsNorthwind.OpenRecordset("Сотрудники") ' Вносит изменения в запись, но закрывает набор записей ' до сохранения изменений. With rstEmployees Debug.Print "Исходные данные" Debug.Print " Имя - Телефон" Debug.Print " " & !Имя & " " & !Фамилия & " - " & !Телефон .Edit !Телефон = "9999" .Close End With ' Повторно открывает объект Recordset, чтобы показать, ' что данные не были изменены. Set rstEmployees = dbsNorthwind.OpenRecordset("Сотрудники") With rstEmployees Debug.Print "После вызова метода Close" Debug.Print " Имя - Телефон" Debug.Print " " & !Имя & " " & !Фамилия & " - " & !Телефон .Close End With dbsNorthwind.Close End Sub